Batch Apex এবং Queueable Apex

Computer Programming - এপেক্স (Apex) Apex এবং Asynchronous Processing (Apex and Asynchronous Processing) |
269
269

Batch Apex এবং Queueable Apex Salesforce-এ বড় ডেটাসেট প্রক্রিয়াকরণ এবং লং-রানিং প্রসেস হ্যান্ডল করার জন্য ব্যবহৃত দুটি গুরুত্বপূর্ণ Asynchronous Apex প্রক্রিয়া। এগুলোর মাধ্যমে গভর্নর লিমিট মেনে কার্যক্ষমতা নিশ্চিত করা যায়। নিচে Batch Apex এবং Queueable Apex সম্পর্কে বিস্তারিত আলোচনা করা হলো।


Batch Apex

Batch Apex হলো একটি Asynchronous Apex প্রক্রিয়া, যা বড় ডেটাসেটকে ছোট ছোট ব্যাচে ভাগ করে প্রসেস করে। এটি বড় ডেটাসেট প্রক্রিয়াকরণের জন্য খুবই কার্যকরী এবং গভর্নর লিমিটের মধ্যে থেকে কার্যক্রম সম্পন্ন করে। Batch Apex-এ ডেটা প্রসেসিং ২০০টি রেকর্ডের ব্যাচে সম্পন্ন হয়।

Batch Apex-এর প্রধান বৈশিষ্ট্য

  1. বড় ডেটাসেট প্রক্রিয়া: বড় ডেটাসেটকে একবারে ২০০টি রেকর্ডের ব্যাচে বিভক্ত করে গভর্নর লিমিটের মধ্যে প্রক্রিয়া করা হয়।
  2. পুনঃব্যবহারযোগ্য কোড: Batch Apex কে পুনরাবৃত্তি করে ব্যবহার করা যায়, যা কার্যক্ষমতা বৃদ্ধি করে।
  3. লং-রানিং প্রসেসিং: বড় এবং জটিল লজিক্যাল কাজগুলি Batch Apex ব্যবহার করে ব্যাকগ্রাউন্ডে চালানো যায়।
  4. Customizable Batch Size: একটি ব্যাচ কতগুলো রেকর্ড নিয়ে কাজ করবে তা কাস্টমাইজ করা যায়।

Batch Apex-এর গঠন

Batch Apex ক্লাসে তিনটি মেথড থাকে:

  • start: ডেটা ফিল্টার করে প্রসেসিং শুরু করে।
  • execute: ব্যাচের প্রতিটি অংশে নির্দিষ্ট কাজ সম্পন্ন করে।
  • finish: ব্যাচ প্রসেস সম্পন্ন হলে চূড়ান্ত কাজ সম্পন্ন করে।

উদাহরণ:

public class BatchExample implements Database.Batchable<SObject> {
    public Database.QueryLocator start(Database.BatchableContext BC) {
        return Database.getQueryLocator('SELECT Id, Name FROM Account');
    }

    public void execute(Database.BatchableContext BC, List<SObject> scope) {
        for (SObject s : scope) {
            Account acc = (Account) s;
            acc.Name = acc.Name + ' Updated';
        }
        update scope;
    }

    public void finish(Database.BatchableContext BC) {
        System.debug('Batch process completed.');
    }
}

// Batch Apex চালানোর জন্য
Database.executeBatch(new BatchExample(), 100);
  • start মেথডে একটি SOQL কুয়েরি রয়েছে, যা নির্দিষ্ট রেকর্ড সিলেক্ট করে।
  • execute মেথডে ব্যাচের প্রতিটি অংশে কাজ সম্পন্ন করা হয়েছে।
  • finish মেথডে ব্যাচ প্রসেস সম্পন্ন হলে একটি বার্তা প্রিন্ট করা হয়েছে।

Queueable Apex

Queueable Apex হলো Future Methods-এর একটি উন্নত সংস্করণ, যা চেইনিং এবং কনস্ট্রাক্টর ব্যবহার করে ডেটা প্রক্রিয়াকরণ আরও সহজ করে তোলে। Queueable Apex-এ চেইনড প্রসেস চালানো যায় এবং বড়, জটিল কাজগুলি সহজে হ্যান্ডল করা যায়।

Queueable Apex-এর প্রধান বৈশিষ্ট্য

  1. চেইনিং: Queueable Apex-এ একাধিক কাজ চেইনিং করে পরপর প্রসেসিং করা যায়।
  2. সহজ ডেটা পাসিং: Queueable Apex-এ কনস্ট্রাক্টরের মাধ্যমে ডেটা সহজে পাস করা যায়, যা Future Methods-এ সম্ভব নয়।
  3. এলাস্টিক প্রসেসিং: Queueable Apex-এ জটিল লজিক হ্যান্ডল করা যায় এবং প্রয়োজন হলে আরও Queueable প্রসেস চেইন করা যায়।

Queueable Apex-এর গঠন

Queueable Apex-এ execute মেথড থাকে, যেখানে নির্দিষ্ট Async লজিক চালানো হয়।

উদাহরণ:

public class QueueableExample implements Queueable {
    private String accountName;

    public QueueableExample(String accountName) {
        this.accountName = accountName;
    }

    public void execute(QueueableContext context) {
        List<Account> accounts = [SELECT Id, Name FROM Account WHERE Name = :accountName];
        for (Account acc : accounts) {
            acc.Name = acc.Name + ' Processed';
        }
        update accounts;
    }
}

// Queueable Apex কল করা
QueueableExample job = new QueueableExample('Tech Solutions');
ID jobID = System.enqueueJob(job);
  • execute মেথডে নির্দিষ্ট Async লজিক এবং ডেটা প্রসেসিং চালানো হয়েছে।
  • enqueueJob মেথড Queueable Apex কাজটি সার্ভারের Queue তে পাঠায়, যেখানে এটি Async হিসেবে প্রসেস হয়।

Batch Apex এবং Queueable Apex এর মধ্যে পার্থক্য

বৈশিষ্ট্যBatch ApexQueueable Apex
প্রধান উদ্দেশ্যবড় ডেটাসেট প্রক্রিয়া ও বড় প্রসেসিংFuture Methods-এর বিকল্প ও চেইনিং সক্ষমতা
ব্যাচ প্রসেসিংডেটাকে ব্যাচে ভাগ করে ২০০ রেকর্ড প্রতি প্রসেসিংব্যাচ ভাগ নেই, পুরো কাজ একবারে প্রসেসিং
চেইনিংচেইনিং সমর্থন করে নাচেইনিং সমর্থন করে
কনস্ট্রাক্টর থেকে ডেটা পাসসমর্থন করে নাসমর্থন করে
গভর্নর লিমিটবেশিরভাগ গভর্নর লিমিট সাধারণ লিমিটের তুলনায় বেশিবেশিরভাগ গভর্নর লিমিট Future Methods-এর মতো
ব্যবহার ক্ষেত্রবড় ডেটাসেট প্রক্রিয়া ও লং-রানিং প্রসেসছোট ও মাঝারি লজিক্যাল কার্যক্রম এবং ডেটা পাস

কখন Batch Apex এবং Queueable Apex ব্যবহার করবেন

  • Batch Apex: বড় ডেটাসেট প্রক্রিয়া বা লং-রানিং কাজের জন্য, যেখানে ডেটা একাধিক ব্যাচে ভাগ করে প্রক্রিয়া করতে হবে।
  • Queueable Apex: চেইনিং বা কনস্ট্রাক্টরের মাধ্যমে ডেটা পাস করা দরকার হলে Queueable Apex ব্যবহার কার্যকর।

ভালো অনুশীলন

  1. Batch Size নিয়ন্ত্রণ করুন: বড় ডেটাসেটের জন্য Batch Size নির্ধারণ করুন, যা গভর্নর লিমিট বজায় রাখতে সহায়ক।
  2. চেইনিং বেশি এড়িয়ে চলুন: Queueable Apex-এর মাধ্যমে বারবার চেইনিং করলে গভর্নর লিমিট অতিক্রম হতে পারে।
  3. Exception Logging: Batch এবং Queueable Apex-এ Exception Logging যুক্ত করুন, যাতে ত্রুটি সনাক্ত করা সহজ হয়।
  4. Schedule Integration: Batch Apex বা Queueable Apex-এর সাথে Scheduled Apex ইন্টিগ্রেশন করলে লং-রানিং প্রসেস নির্দিষ্ট সময়ে সম্পন্ন করা যায়।

সারসংক্ষেপ

  • Batch Apex বড় ডেটাসেট প্রক্রিয়াকরণের জন্য ব্যাচ ভিত্তিক প্রসেসিং প্রদান করে এবং বড় লজিক হ্যান্ডল করতে সহায়ক।
  • Queueable Apex Future Methods-এর উন্নত সংস্করণ, যা চেইনিং এবং ডেটা পাসিং সক্ষমতা প্রদান করে।

Batch Apex এবং Queueable Apex ব্যবহার করে বড় এবং জটিল ডেটা প্রক্রিয়াকরণের কার্যক্ষমতা বৃদ্ধি করে Salesforce প্ল্যাটফর্মে উন্নত কার্যক্ষমতা নিশ্চিত করা যায়।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion